﻿//===================================================================================
// Copyright (c) Ryan Garrett.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===================================================================================

using System;

namespace Caffeine.Core.Test.TestModel
{
    public class ModelForPropertySyncTesting : ModelBase
    {
        private readonly ModelProperty<String> _stringProperty;
        private readonly ModelProperty<String> _stringProperty2;
        private readonly ModelProperty<Int32> _intProperty;
        private readonly ModelProperty<Nullable<Decimal>> _decimalProperty;
        private readonly ModelProperty<EnumForTesting> _enumProperty;

        public ModelForPropertySyncTesting()
        {
            _stringProperty = RegisterProperty<String>("StringProperty");
            _stringProperty2 = RegisterProperty<String>("StringProperty2");
            _intProperty = RegisterProperty<Int32>("IntProperty");
            _decimalProperty = RegisterProperty<Nullable<Decimal>>("DecimalProperty");
            _enumProperty = RegisterProperty<EnumForTesting>("EnumProperty");
        }

        public ModelProperty<String> StringProperty
        {
            get
            {
                return _stringProperty;
            }
        }

        public ModelProperty<String> StringProperty2
        {
            get
            {
                return _stringProperty2;
            }
        }

        public ModelProperty<Int32> IntProperty
        {
            get
            {
                return _intProperty;
            }
        }

        public ModelProperty<Nullable<Decimal>> DecimalProperty
        {
            get
            {
                return _decimalProperty;
            }
        }

        public ModelProperty<EnumForTesting> EnumProperty
        {
            get
            {
                return _enumProperty;
            }
        }
    }
}
